----------------------------------------------------------
/* IBDR 2014 – Groupe < 4x4 > */
/* Création de la procedure ps_insertion_conducteurs_secondaires */
/* Auteur : < Fabry Jules - TA > */
/* Testeur : < NOM Prénom - Parcours > */
/* Correcteur : < NOM Prénom - Parcours > */
/* Intégrateur : < NOM Prénom - Parcours > */
----------------------------------------------------------

IF OBJECT_ID ('dbo.ps_insertion_conducteurs_secondaires', 'P') IS NOT NULL
	DROP PROCEDURE dbo.ps_insertion_conducteurs_secondaires;
GO

CREATE PROCEDURE dbo.ps_insertion_conducteurs_secondaires(
	@nom_FK NVARCHAR(40),
	@prenom_FK NVARCHAR(40),
	@daten_FK DATETIME,
	@immatriculation_FK VARCHAR(9),
	@dated_FK DATETIME,
	@idAbonnement_FK BIGINT)
AS

BEGIN
	IF @nom_FK LIKE '' OR @nom_FK=NULL
	BEGIN
		PRINT 'saisie du nom incorecte';
		RETURN 0;
	END
	IF @prenom_FK LIKE '' OR @prenom_FK=NULL
	BEGIN
		PRINT 'saisie du prenom incorecte';
		RETURN 0;
	END
	IF @daten_FK=NULL OR @daten_FK=NULL
	BEGIN
		PRINT 'saisie de la date incorecte';
		RETURN 0;
	END
	IF @immatriculation_FK LIKE '' OR @immatriculation_FK=NULL
	BEGIN
		PRINT 'saisie du nom incorecte';
		RETURN 0;
	END
	IF @dated_FK LIKE '' OR @dated_FK=NULL
	BEGIN
		PRINT 'saisie du prenom incorecte';
		RETURN 0;
	END
	IF @idAbonnement_FK=NULL OR @idAbonnement_FK=NULL
	BEGIN
		PRINT 'saisie de la date incorecte';
		RETURN 0;
	END
	IF NOT EXISTS (SELECT *
					FROM ConducteurSecondaire
					WHERE ConducteurSecondaire.nom LIKE @nom_FK AND
							ConducteurSecondaire.prenom LIKE @prenom_FK AND
							ConducteurSecondaire.daten = @daten_FK)
	BEGIN
		PRINT 'Le conducteur secondaire est inexistante';
		RETURN 0;
	END
	IF NOT EXISTS (SELECT *
				FROM Location
				WHERE Location.dated = @dated_FK AND
						Location.idAbonnement = @idAbonnement_FK AND
						Location.immatriculation LIKE @immatriculation_FK)
	BEGIN
		PRINT ' La location est inexistante';
		RETURN 0;
	END
	IF NOT EXISTS(
	SELECT * 
	FROM ConducteursSecondaires cs
	WHERE cs.daten_FK=@daten_FK AND cs.nom_FK=@nom_FK AND cs.prenom_FK=@prenom_FK
		AND cs.dated_FK=@dated_FK AND cs.idAbonnement_FK=@idAbonnement_FK 
		AND cs.immatriculation_FK=@immatriculation_FK)
	BEGIN
		INSERT INTO dbo.ConducteursSecondaires
			(
			nom_FK,
			prenom_FK,
			daten_FK,
			immatriculation_FK,
			dated_FK,
			idAbonnement_FK
			)
			VALUES
			(
			@nom_FK  ,
			@prenom_FK ,
			@daten_FK  ,
			@immatriculation_FK ,
			@dated_FK,
			@idAbonnement_FK
			)
		PRINT('Insertion du nouveau conducteur secondaire dans la table de jointure:');
		PRINT CAST(@nom_FK AS VARCHAR) + ' ' + CAST(@prenom_FK AS VARCHAR) + ' né le ' + CAST(@daten_FK AS VARCHAR)
		+ CAST(@immatriculation_FK AS VARCHAR) + ' ' + CAST(@dated_FK AS VARCHAR) + ' ' + CAST(@idAbonnement_FK AS VARCHAR)
		RETURN 1;
	END
END
GO

----------------------------------------------------------
/* IBDR 2014 – Groupe < 4x4 > */
/* Création de la procedure ps_suppression_conducteurs_secondaires */
/* Auteur : < Fabry Jules - TA > */
/* Testeur : < NOM Prénom - Parcours > */
/* Correcteur : < BOULILA Louiza - TA > */
/* Intégrateur : < BOULILA Louiza - DIALLO Abdoul -TA > */
----------------------------------------------------------

IF OBJECT_ID ('dbo.ps_suppression_conducteurs_secondaires', 'P') IS NOT NULL
	DROP PROCEDURE dbo.ps_suppression_conducteurs_secondaires;

GO
CREATE PROCEDURE dbo.ps_suppression_conducteurs_secondaires(
	@nom_FK NVARCHAR(40) ,
	@prenom_FK NVARCHAR(40) ,
	@daten_FK DATETIME ,
	@immatriculation_FK VARCHAR(9),
	@dated_FK DATETIME,
	@idAbonnement_FK BIGINT)
AS

BEGIN
	IF @nom_FK LIKE '' OR @nom_FK=NULL
	BEGIN
		PRINT 'saisie du nom incorecte';
		RETURN 0;
	END
	IF @prenom_FK LIKE '' OR @prenom_FK=NULL
	BEGIN
		PRINT 'saisie du prenom incorecte';
		RETURN 0;
	END
	IF @daten_FK=NULL OR @daten_FK=NULL
	BEGIN
		PRINT 'saisie de la date incorecte';
		RETURN 0;
	END
	IF @immatriculation_FK LIKE '' OR @immatriculation_FK=NULL
	BEGIN
		PRINT 'saisie du nom incorecte';
		RETURN 0;
	END
	IF @dated_FK LIKE '' OR @dated_FK=NULL
	BEGIN
		PRINT 'saisie du prenom incorecte';
		RETURN 0;
	END
	IF @idAbonnement_FK=NULL OR @idAbonnement_FK=NULL
	BEGIN
		PRINT 'saisie de la date incorecte';
		RETURN 0;
	END
	/*Vérifier si la location est finie avant de supprimer le conducteur secondaire*/
	IF EXISTS (SELECT *
				FROM Location 
				WHERE immatriculation LIKE @immatriculation_FK AND dated = @dated_FK AND idAbonnement = @idAbonnement_FK 
						AND daterr IS NULL )
	BEGIN
		PRINT 'La location du véhicule '+ CAST (@immatriculation_FK AS VARCHAR)+' le: '+ CAST(@dated_FK AS VARCHAR)+'n''est pas encore finie. 
		A pour conducteur secondaire :'+CAST(@nom_FK AS VARCHAR)+' '+CAST(@prenom_FK AS VARCHAR);
		RETURN 0;
	END


	IF EXISTS(
	SELECT * 
	FROM dbo.ConducteursSecondaires cs
	WHERE cs.daten_FK=@daten_FK AND cs.nom_FK=@nom_FK AND cs.prenom_FK=@prenom_FK
		AND cs.dated_FK=@dated_FK AND cs.idAbonnement_FK=@idAbonnement_FK 
		AND cs.immatriculation_FK=@immatriculation_FK)
	BEGIN
		DELETE FROM ConducteursSecondaires
		WHERE daten_FK=@daten_FK AND nom_FK=@nom_FK AND prenom_FK=@prenom_FK
		AND dated_FK=@dated_FK AND idAbonnement_FK=@idAbonnement_FK 
		AND immatriculation_FK=@immatriculation_FK
		PRINT 'supression dans la table de jointure de ' + CAST(@Nom_FK AS VARCHAR) + ' ' + CAST(@Prenom_FK AS VARCHAR) 
		+ ' né le ' + CAST(@daten_FK AS VARCHAR)
		+ CAST(@immatriculation_FK AS VARCHAR) + ' ' + CAST(@dated_FK AS VARCHAR) + ' ' + CAST(@idAbonnement_FK AS VARCHAR)
		RETURN 1;
	END
END
GO